gtk_widget_set_window (widget, gdk_window);
gtk_widget_register_window (widget, gdk_window);
- priv->content_window = gdk_window_new (gdk_window,
- &attributes, attributes_mask);
- gdk_window_show (priv->content_window);
- gtk_widget_register_window (widget, priv->content_window);
-
- gtk_style_context_set_background (gtk_widget_get_style_context (widget), priv->content_window);
+ if (priv->type == GTK_WINDOW_TOPLEVEL)
+ {
+ priv->content_window = gdk_window_new (gdk_window,
+ &attributes, attributes_mask);
+ gdk_window_show (priv->content_window);
+ gtk_widget_register_window (widget, priv->content_window);
- if (gtk_bin_get_child (GTK_BIN (window)))
- gtk_widget_set_parent_window (gtk_bin_get_child (GTK_BIN (window)),
- priv->content_window);
+ gtk_style_context_set_background (gtk_widget_get_style_context (widget), priv->content_window);
+ if (gtk_bin_get_child (GTK_BIN (window)))
+ gtk_widget_set_parent_window (gtk_bin_get_child (GTK_BIN (window)),
+ priv->content_window);
+ }
return;
}
attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
- priv->content_window = gdk_window_new (gdk_window,
- &attributes, attributes_mask);
- gdk_window_show (priv->content_window);
- gtk_widget_register_window (widget, priv->content_window);
+ if (priv->type == GTK_WINDOW_TOPLEVEL)
+ {
+ priv->content_window = gdk_window_new (gdk_window,
+ &attributes, attributes_mask);
+ gdk_window_show (priv->content_window);
+ gtk_widget_register_window (widget, priv->content_window);
- context = gtk_widget_get_style_context (widget);
- gtk_style_context_set_background (context, priv->content_window);
+ context = gtk_widget_get_style_context (widget);
+ gtk_style_context_set_background (context, priv->content_window);
- if (gtk_bin_get_child (GTK_BIN (window)))
- gtk_widget_set_parent_window (gtk_bin_get_child (GTK_BIN (window)),
- priv->content_window);
+ if (gtk_bin_get_child (GTK_BIN (window)))
+ gtk_widget_set_parent_window (gtk_bin_get_child (GTK_BIN (window)),
+ priv->content_window);
+ }
if (priv->transient_parent &&
gtk_widget_get_realized (GTK_WIDGET (priv->transient_parent)))
if (priv->grip_window != NULL)
resize_grip_destroy_window (window);
- gtk_widget_unregister_window (widget, priv->content_window);
- gdk_window_destroy (priv->content_window);
- priv->content_window = NULL;
+ if (priv->content_window != NULL)
+ {
+ gtk_widget_unregister_window (widget, priv->content_window);
+ gdk_window_destroy (priv->content_window);
+ priv->content_window = NULL;
+ }
GTK_WIDGET_CLASS (gtk_window_parent_class)->unrealize (widget);
}
set_grip_position (window);
}
- gdk_window_move_resize (priv->content_window,
- child_allocation.x,
- child_allocation.y,
- child_allocation.width,
- child_allocation.height);
+ if (priv->content_window != NULL)
+ gdk_window_move_resize (priv->content_window,
+ child_allocation.x,
+ child_allocation.y,
+ child_allocation.width,
+ child_allocation.height);
}
{
GtkWindowPrivate *priv = GTK_WINDOW (container)->priv;
- gtk_widget_set_parent_window (child, priv->content_window);
+ if (priv->content_window != NULL)
+ gtk_widget_set_parent_window (child, priv->content_window);
GTK_CONTAINER_CLASS (gtk_window_parent_class)->add (container, child);
}
priv->default_cursor = gdk_window_get_cursor (window);
if (priv->default_cursor == NULL)
priv->default_cursor = gdk_cursor_new_for_display (gtk_widget_get_display (widget), GDK_LEFT_PTR);
- gdk_window_set_cursor (priv->content_window, priv->default_cursor);
+ if (priv->content_window != NULL)
+ gdk_window_set_cursor (priv->content_window, priv->default_cursor);
}
static void
}
if (!gtk_widget_get_app_paintable (widget) &&
+ priv->content_window != NULL &&
gtk_cairo_should_draw_window (cr, priv->content_window))
{
gint x, y;